1. Field of the Invention
The present invention relates to a channel adapter configured for validating received packets in an InfiniBand™ server system.
2. Background Art
Networking technology has encountered improvements in server architectures and design with a goal toward providing servers that are more robust and reliable in mission critical networking applications. In particular, the use of servers for responding to client requests has resulted in a necessity that servers have an extremely high reliability to ensure that the network remains operable. Hence, there has been a substantial concern about server reliability, availability, and serviceability.
In addition, processors used in servers have encountered substantial improvements, where the microprocessor speed and bandwidth have exceeded the capacity of the connected input/output (I/O) buses, limiting the server throughput to the bus capacity. Accordingly, different server standards have been proposed in an attempt to improve server performance in terms of addressing, processor clustering, and high-speed I/O.
These different proposed server standards led to the development of the InfiniBand™ Architecture Specification, (Release 1.0), adopted by the InfiniBand™ Trade Association. The InfiniBand™ Architecture Specification specifies a high-speed networking connection between end nodes (e.g., central processing units, peripherals, etc.) and switches inside a server system. Hence, the term “InfiniBand™ network” refers to a private system area network (SAN) that connects end nodes and switches into a cluster within a server system, enabling the sharing of cluster resources. The InfiniBand™ Architecture Specification specifies both I/O operations and interprocessor communications (IPC).
A particular feature of the InfiniBand™ Architecture Specification is the proposed implementation in hardware of the transport layer services present in existing networking protocols, such as TCP/IP based protocols. The hardware-based implementation of transport layer services provides the advantage of reducing processing requirements of the central processing unit (i.e., “offloading” processor code execution), hence offloading the operating system of the server system.
However, arbitrary hardware implementations may result in substantially costly or relatively inefficient hardware designs. For example, the InfiniBand™ Architecture Specification specifies that a packet must be validated in the link layer of channel adapters to ensure that the packet is at the correct destination, is not corrupted with bit errors, etc. In particular, the InfiniBand™ Architecture Specification indicates that data packets must be checked with detected errors reported in a prescribed sequence, beginning with a cyclic redundancy check (CRC) using the CRC field at the end of the packet. Although the InfiniBand™ Architecture Specification permits validation to begin before the entire packet has been received, the InfiniBand™ Architecture Specification also specifies that if the channel adapter has begun to forward (e.g., in a router or a switch) packet data before the entire packet has been received, the channel adapter implemented within the switch or router must corrupt the packet if an error is detected subsequent to the switch or router having begun forwarding the packet.
No proposal has been made for an efficient manner for implementing packet validation before the entire packet has been received; hence, there is a concern that an inefficient implementation may result in more complex implementations increasing device cost, or implementations that increase latency. In addition, there is a concern that the intentional corrupting of a packet due to detecting an error subsequent to initiating forwarding of the packet results in an unnecessary depletion of system resources such as network bandwidth.